package com.szh.mysobproject.widget;

import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
import android.widget.ScrollView;

import com.szh.mysobproject.R;

public class GoTopScrollView extends ScrollView implements View.OnClickListener {

    //回到顶部按钮
    private ImageView mGoTopIv;

    // 设置滑动高度显示回到顶部按钮
    private int mScreenHeight;

    public GoTopScrollView(Context context) {
        this(context, null);
    }

    public GoTopScrollView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public GoTopScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    //设置回到顶部按钮
    public void setScrollListener(ImageView goTopIv) {
        this.mGoTopIv = goTopIv;
        this.mGoTopIv.setOnClickListener(this);
    }

    //设置回到顶部高度
    public void setScreenHeight(int screenHeight) {
        this.mScreenHeight = screenHeight;
    }

    /**
     * @param l    — 代表滑动后当前ScrollView可视界面的左上角在整个ScrollView的X轴中的位置；
     * @param t    — 代表滑动后当前ScrollView可视界面的左上角在整个ScrollView的Y轴上的位置；
     * @param oldl — 表示滑动前的X轴位置；
     * @param oldt — 表示滑动前前的Y轴位置；
     */
    @Override
    protected void onScrollChanged(int l, int t, int oldl, int oldt) {
        super.onScrollChanged(l, t, oldl, oldt);
        //判断显示与隐藏
        if (t >= mScreenHeight && mGoTopIv.getVisibility() == VISIBLE) {
            mGoTopIv.setVisibility(View.GONE);
        } else if (mGoTopIv.getVisibility() == GONE) {
            mGoTopIv.setVisibility(View.VISIBLE);
        }
    }

    @Override
    public void onClick(View v) {
        //判断id 是否为传入的imageView
        if (v.getId() == R.id.iv_goTop) {
            this.smoothScrollTo(0, 0);
        }
    }
}
